🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / core / testing / src / commonMain / kotlin / org / meshtastic / core / testing / FakeRadioConfigRepository.kt
Displaying Raw • Download
core/testing/src/commonMain/kotlin/org/meshtastic/core/testing/FakeRadioConfigRepository.kt b4bedd92fcc8d65daff79200d71f6ebc3d8f0cfa (b4bedd92) Text, 7.18 KB
T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.core.testing
Tff7b72import T7ee787kotlinx.coroutines.flow.Flow
Tff7b72import T7ee787org.meshtastic.core.repository.RadioConfigRepository
Tff7b72import T7ee787org.meshtastic.proto.Channel
Tff7b72import T7ee787org.meshtastic.proto.ChannelSet
Tff7b72import T7ee787org.meshtastic.proto.ChannelSettings
Tff7b72import T7ee787org.meshtastic.proto.Config
Tff7b72import T7ee787org.meshtastic.proto.DeviceProfile
Tff7b72import T7ee787org.meshtastic.proto.DeviceUIConfig
Tff7b72import T7ee787org.meshtastic.proto.FileInfo
Tff7b72import T7ee787org.meshtastic.proto.LoRaRegionPresetMap
Tff7b72import T7ee787org.meshtastic.proto.LocalConfig
Tff7b72import T7ee787org.meshtastic.proto.LocalModuleConfig
Tff7b72import T7ee787org.meshtastic.proto.ModuleConfig
T8b949e/**
* A test double for [RadioConfigRepository] backed by in-memory [kotlinx.coroutines.flow.MutableStateFlow]s.
*
* All mutator methods update the underlying state flows synchronously so tests can observe changes immediately.
* [deviceProfileFlow] is derived from [localConfigFlow], [moduleConfigFlow], and the current channel set.
*/
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffTooManyFunctionsTa5d6ff"Tb4b4b4)
Tff7b72class T56d364FakeRadioConfigRepository Tb4b4b4:
Te6edf3BaseFakeTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3RadioConfigRepository Tb4b4b4{
Tff7b72data Tff7b72class T56d364ChannelSetUpdateTb4b4b4(Tff7b72val Te6edf3settingsListTb4b4b4: Te6edf3ListTff7b72<Te6edf3ChannelSettingsTff7b72>Tff7b72?Tb4b4b4, Tff7b72val Te6edf3loraConfigTb4b4b4: Te6edf3ConfigTb4b4b4.Te6edf3LoRaConfigTff7b72?Tb4b4b4)
Tff7b72private Tff7b72val Te6edf3channelSetBacking Tff7b72= Te6edf3mutableStateFlowTb4b4b4(Te6edf3ChannelSetTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72override Tff7b72val Te6edf3channelSetFlowTb4b4b4: Te6edf3FlowTff7b72<Te6edf3ChannelSetTff7b72> Tff7b72= Te6edf3channelSetBacking
Tff7b72private Tff7b72val Te6edf3localConfigBacking Tff7b72= Te6edf3mutableStateFlowTb4b4b4(Te6edf3LocalConfigTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72override Tff7b72val Te6edf3localConfigFlowTb4b4b4: Te6edf3FlowTff7b72<Te6edf3LocalConfigTff7b72> Tff7b72= Te6edf3localConfigBacking
Tff7b72private Tff7b72val Te6edf3moduleConfigBacking Tff7b72= Te6edf3mutableStateFlowTb4b4b4(Te6edf3LocalModuleConfigTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72override Tff7b72val Te6edf3moduleConfigFlowTb4b4b4: Te6edf3FlowTff7b72<Te6edf3LocalModuleConfigTff7b72> Tff7b72= Te6edf3moduleConfigBacking
Tff7b72private Tff7b72val Te6edf3deviceProfileBacking Tff7b72= Te6edf3mutableStateFlowTb4b4b4(Te6edf3DeviceProfileTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72override Tff7b72val Te6edf3deviceProfileFlowTb4b4b4: Te6edf3FlowTff7b72<Te6edf3DeviceProfileTff7b72> Tff7b72= Te6edf3deviceProfileBacking
Tff7b72val Te6edf3currentDeviceProfileTb4b4b4: Te6edf3DeviceProfile
Tff7b72getTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3deviceProfileBackingTb4b4b4.Te6edf3value
Tff7b72private Tff7b72val Te6edf3deviceUIConfigBacking Tff7b72= Te6edf3mutableStateFlowTff7b72<Te6edf3DeviceUIConfig?Tff7b72>Tb4b4b4(Tff7b72nullTb4b4b4)
Tff7b72override Tff7b72val Te6edf3deviceUIConfigFlowTb4b4b4: Te6edf3FlowTff7b72<Te6edf3DeviceUIConfig?Tff7b72> Tff7b72= Te6edf3deviceUIConfigBacking
Tff7b72private Tff7b72val Te6edf3fileManifestBacking Tff7b72= Te6edf3mutableStateFlowTff7b72<Te6edf3ListTff7b72<Te6edf3FileInfoTff7b72>Tff7b72>Tb4b4b4(Te6edf3emptyListTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72override Tff7b72val Te6edf3fileManifestFlowTb4b4b4: Te6edf3FlowTff7b72<Te6edf3ListTff7b72<Te6edf3FileInfoTff7b72>Tff7b72> Tff7b72= Te6edf3fileManifestBacking
Tff7b72private Tff7b72val Te6edf3loraRegionPresetMapBacking Tff7b72= Te6edf3mutableStateFlowTff7b72<Te6edf3LoRaRegionPresetMap?Tff7b72>Tb4b4b4(Tff7b72nullTb4b4b4)
Tff7b72override Tff7b72val Te6edf3loraRegionPresetMapFlowTb4b4b4: Te6edf3FlowTff7b72<Te6edf3LoRaRegionPresetMap?Tff7b72> Tff7b72= Te6edf3loraRegionPresetMapBacking
Tff7b72val Te6edf3currentChannelSetTb4b4b4: Te6edf3ChannelSet
Tff7b72getTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3channelSetBackingTb4b4b4.Te6edf3value
Tff7b72val Te6edf3currentLocalConfigTb4b4b4: Te6edf3LocalConfig
Tff7b72getTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3localConfigBackingTb4b4b4.Te6edf3value
Tff7b72val Te6edf3currentModuleConfigTb4b4b4: Te6edf3LocalModuleConfig
Tff7b72getTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3moduleConfigBackingTb4b4b4.Te6edf3value
Tff7b72val Te6edf3currentDeviceUIConfigTb4b4b4: Te6edf3DeviceUIConfig?
Tff7b72getTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3deviceUIConfigBackingTb4b4b4.Te6edf3value
Tff7b72val Te6edf3currentFileManifestTb4b4b4: Te6edf3ListTff7b72<Te6edf3FileInfoTff7b72>
Tff7b72getTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3fileManifestBackingTb4b4b4.Te6edf3value
Tff7b72val Te6edf3currentLoRaRegionPresetMapTb4b4b4: Te6edf3LoRaRegionPresetMap?
Tff7b72getTb4b4b4(Tb4b4b4) Tff7b72= Te6edf3loraRegionPresetMapBackingTb4b4b4.Te6edf3value
T8b949e/**
* Last [Config] passed to [setLocalConfig] (null until called). Tests should use [setLocalConfigDirect] to drive
* state.
*/
Tff7b72var Te6edf3lastSetLocalConfigTb4b4b4: Te6edf3Config? Tff7b72= Tff7b72null
Te6edf3private Tff7b72set
T8b949e/** Last [ModuleConfig] passed to [setLocalModuleConfig] (null until called). */
Tff7b72var Te6edf3lastSetModuleConfigTb4b4b4: Te6edf3ModuleConfig? Tff7b72= Tff7b72null
Te6edf3private Tff7b72set
T8b949e/** Arguments supplied to [updateChannelSet], in call order. */
Tff7b72val Te6edf3channelSetUpdates Tff7b72= Te6edf3mutableListOfTff7b72<Te6edf3ChannelSetUpdateTff7b72>Tb4b4b4(Tb4b4b4)
Tff7b72init Tb4b4b4{
Te6edf3registerResetAction Tb4b4b4{
Te6edf3lastSetLocalConfig Tff7b72= Tff7b72null
Te6edf3lastSetModuleConfig Tff7b72= Tff7b72null
Te6edf3channelSetUpdatesTb4b4b4.Te6edf3clearTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffclearChannelSetTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3channelSetBackingTb4b4b4.Te6edf3value Tff7b72= Te6edf3ChannelSetTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffreplaceAllSettingsTb4b4b4(Te6edf3settingsListTb4b4b4: Te6edf3ListTff7b72<Te6edf3ChannelSettingsTff7b72>Tb4b4b4) Tb4b4b4{
Te6edf3updateChannelSetTb4b4b4(Te6edf3settingsList Tff7b72= Te6edf3settingsListTb4b4b4, Te6edf3loraConfig Tff7b72= Tff7b72nullTb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffupdateChannelSetTb4b4b4(Te6edf3settingsListTb4b4b4: Te6edf3ListTff7b72<Te6edf3ChannelSettingsTff7b72>Tff7b72?Tb4b4b4, Te6edf3loraConfigTb4b4b4: Te6edf3ConfigTb4b4b4.Te6edf3LoRaConfigTff7b72?Tb4b4b4) Tb4b4b4{
Te6edf3channelSetUpdates Tff7b72+Tff7b72= Te6edf3ChannelSetUpdateTb4b4b4(Te6edf3settingsListTb4b4b4, Te6edf3loraConfigTb4b4b4)
Tff7b72val Te6edf3current Tff7b72= Te6edf3channelSetBackingTb4b4b4.Te6edf3value
Te6edf3channelSetBackingTb4b4b4.Te6edf3value Tff7b72=
Te6edf3currentTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3settings Tff7b72= Te6edf3settingsList Tff7b72?: Te6edf3currentTb4b4b4.Te6edf3settingsTb4b4b4, Te6edf3lora_config Tff7b72= Te6edf3loraConfig Tff7b72?: Te6edf3currentTb4b4b4.Te6edf3lora_configTb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffupdateChannelSettingsTb4b4b4(Te6edf3channelTb4b4b4: Te6edf3ChannelTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3current Tff7b72= Te6edf3channelSetBackingTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3settingsTb4b4b4.Te6edf3toMutableListTb4b4b4(Tb4b4b4)
Tff7b72while Tb4b4b4(Te6edf3currentTb4b4b4.Te6edf3size Tff7b72<Tff7b72= Te6edf3channelTb4b4b4.Te6edf3indexTb4b4b4) Te6edf3currentTb4b4b4.Te6edf3addTb4b4b4(Te6edf3ChannelSettingsTb4b4b4(Tb4b4b4)Tb4b4b4)
Te6edf3currentTff7b72[Te6edf3channelTb4b4b4.Te6edf3indexTff7b72] Tff7b72= Te6edf3channelTb4b4b4.Te6edf3settings Tff7b72?: Te6edf3ChannelSettingsTb4b4b4(Tb4b4b4)
Te6edf3channelSetBackingTb4b4b4.Te6edf3value Tff7b72= Te6edf3channelSetBackingTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3settings Tff7b72= Te6edf3currentTb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffclearLocalConfigTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3localConfigBackingTb4b4b4.Te6edf3value Tff7b72= Te6edf3LocalConfigTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffsetLocalConfigTb4b4b4(Te6edf3configTb4b4b4: Te6edf3ConfigTb4b4b4) Tb4b4b4{
Te6edf3lastSetLocalConfig Tff7b72= Te6edf3config
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffclearLocalModuleConfigTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3moduleConfigBackingTb4b4b4.Te6edf3value Tff7b72= Te6edf3LocalModuleConfigTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffsetLocalModuleConfigTb4b4b4(Te6edf3configTb4b4b4: Te6edf3ModuleConfigTb4b4b4) Tb4b4b4{
Te6edf3lastSetModuleConfig Tff7b72= Te6edf3config
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffsetDeviceUIConfigTb4b4b4(Te6edf3configTb4b4b4: Te6edf3DeviceUIConfigTb4b4b4) Tb4b4b4{
Te6edf3deviceUIConfigBackingTb4b4b4.Te6edf3value Tff7b72= Te6edf3config
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffclearDeviceUIConfigTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3deviceUIConfigBackingTb4b4b4.Te6edf3value Tff7b72= Tff7b72null
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffaddFileInfoTb4b4b4(Te6edf3infoTb4b4b4: Te6edf3FileInfoTb4b4b4) Tb4b4b4{
Te6edf3fileManifestBackingTb4b4b4.Te6edf3value Tff7b72= Te6edf3fileManifestBackingTb4b4b4.Te6edf3value Tff7b72+ Te6edf3info
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffclearFileManifestTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3fileManifestBackingTb4b4b4.Te6edf3value Tff7b72= Te6edf3emptyListTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffsetLoraRegionPresetMapTb4b4b4(Te6edf3mapTb4b4b4: Te6edf3LoRaRegionPresetMapTb4b4b4) Tb4b4b4{
Te6edf3loraRegionPresetMapBackingTb4b4b4.Te6edf3value Tff7b72= Te6edf3map
Tb4b4b4}
Tff7b72override Tff7b72suspend Tff7b72fun Td2a8ffclearLoraRegionPresetMapTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3loraRegionPresetMapBackingTb4b4b4.Te6edf3value Tff7b72= Tff7b72null
Tb4b4b4}
T8b949e/** Directly sets the [LocalConfig] without merging (preferred for test setup). */
Tff7b72fun Td2a8ffsetLocalConfigDirectTb4b4b4(Te6edf3configTb4b4b4: Te6edf3LocalConfigTb4b4b4) Tb4b4b4{
Te6edf3localConfigBackingTb4b4b4.Te6edf3value Tff7b72= Te6edf3config
Tb4b4b4}
T8b949e/** Directly sets the [LocalModuleConfig] without merging (preferred for test setup). */
Tff7b72fun Td2a8ffsetLocalModuleConfigDirectTb4b4b4(Te6edf3configTb4b4b4: Te6edf3LocalModuleConfigTb4b4b4) Tb4b4b4{
Te6edf3moduleConfigBackingTb4b4b4.Te6edf3value Tff7b72= Te6edf3config
Tb4b4b4}
T8b949e/** Directly sets the combined [DeviceProfile] emitted by [deviceProfileFlow]. */
Tff7b72fun Td2a8ffsetDeviceProfileTb4b4b4(Te6edf3profileTb4b4b4: Te6edf3DeviceProfileTb4b4b4) Tb4b4b4{
Te6edf3deviceProfileBackingTb4b4b4.Te6edf3value Tff7b72= Te6edf3profile
Tb4b4b4}
T8b949e/** Directly sets the [ChannelSet] (bypasses [updateChannelSettings]/[replaceAllSettings]). */
Tff7b72fun Td2a8ffsetChannelSetTb4b4b4(Te6edf3channelSetTb4b4b4: Te6edf3ChannelSetTb4b4b4) Tb4b4b4{
Te6edf3channelSetBackingTb4b4b4.Te6edf3value Tff7b72= Te6edf3channelSet
Tb4b4b4}
Tb4b4b4}
Served by rngit 1.5.0 - Generated in 0.07s